package cn.wlh.learn.webmagic.utils;

import cn.hutool.core.util.ArrayUtil;
import us.codecraft.webmagic.selector.Selectable;

import java.util.function.Predicate;

public abstract class ArrayUtils extends ArrayUtil{
    private ArrayUtils(){};

    /**
     * 并且执行,
     * @return 是则都执行成功，否有一个没有执行成功.
     */
    public static <T> boolean andExe(Predicate<T> pre, T... objs) {
        boolean ret = false;
        if( ArrayUtil.isNotEmpty(objs) ) {
            for (T obj : objs) {
                ret = pre.test(obj);
                // 失败立刻就推出.
                if(!ret) break;
            }
        }
        return ret;

    }

    /**
     * or执行,
     * @return 是有一个执行成功 ，否都没有执行成功.
     */
    public static <T> boolean  orExe(Predicate<T> pre, T... objs) {
        boolean ret = false;
        if( ArrayUtil.isNotEmpty(objs) ) {
            for (T obj : objs) {
                ret = pre.test(obj);
                if(ret) break;
            }
        }
        return ret;
    }

}
